Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Embedded software</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Embedded_software"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Embedded_software rootpage-Embedded_software skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Embedded software</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Embedded software</b> is computer <a href="Software" title="Software">software</a>, written to control machines or devices that are not typically thought of as computers, commonly known as <a href="Embedded_systems" class="mw-redirect" title="Embedded systems">embedded systems</a>. It is typically specialized for the particular <a href="Electronic_hardware" title="Electronic hardware">hardware</a> that it runs on and has time and memory constraints.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> This term is sometimes used interchangeably with <a href="Firmware" title="Firmware">firmware</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>

<p>A precise and stable characteristic feature is that no or not all functions of embedded software are initiated/controlled via a human <a href="Interface_(computing)" title="Interface (computing)">interface</a>, but through machine-interfaces instead.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Manufacturers build embedded software into the electronics of <a href="Cars" class="mw-redirect" title="Cars">cars</a>, telephones, modems, <a href="Robot" title="Robot">robots</a>, appliances, toys, security systems, <a href="Pacemaker" title="Pacemaker">pacemakers</a>, televisions and set-top boxes, and <a href="Digital_watches" class="mw-redirect" title="Digital watches">digital watches</a>, for example.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> This software can be very simple, such as lighting controls running on an <a href="8-bit" class="mw-redirect" title="8-bit">8-bit</a> <a href="Microcontroller" title="Microcontroller">microcontroller</a> with a few <a href="Kilobytes" class="mw-redirect" title="Kilobytes">kilobytes</a> of memory with the suitable level of processing complexity determined with a Probably Approximately Correct Computation framework<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> (a methodology based on <a href="Randomized_algorithm" title="Randomized algorithm">randomized algorithms</a>). However, embedded software can become very sophisticated in applications such as <a href="Router_(computing)" title="Router (computing)">routers</a>, optical network elements, <a href="Airplane" title="Airplane">airplanes</a>, <a href="Missile" title="Missile">missiles</a>, and <a href="Process_control" class="mw-redirect" title="Process control">process control</a> systems.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Operating_systems">Operating systems</h2></div>
<p>Unlike standard computers that generally use operating systems such as <a href="MacOS" title="MacOS">macOS</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a> or <a href="Linux" title="Linux">Linux</a>, embedded software may use no operating system. When they do use one, a wide variety of operating systems can be chosen from, typically a <a href="Real-time_operating_system" title="Real-time operating system">real-time operating system</a>. Code for embedded software is typically written in <a href="C_(programming_language)" title="C (programming language)">C</a> or <a href="C%2B%2B" title="C++">C++</a>, but various <a href="High-level_programming_languages" class="mw-redirect" title="High-level programming languages">high-level programming languages</a>, such as <a href="C" title="C">C#</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a> and <a href="JavaScript" title="JavaScript">JavaScript</a>, are now also in common use to target microcontrollers and embedded systems.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> <a href="Assembly_language" title="Assembly language">Assembly languages</a> are often used too, especially in booting and <a href="Interrupt" title="Interrupt">interrupt</a> handling. <a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a> is used in some military and aviation projects.
</p>
<div class="mw-heading mw-heading2"><h2 id="Differences_from_application_software">Differences from application software</h2></div>

<p>Most consumers are familiar with <a href="Application_software" title="Application software">application software</a> that provide functionality on a computer. However embedded software is often less visible, but no less complicated. Unlike application software, embedded software has fixed hardware requirements and capabilities, and addition of third-party hardware or software is strictly controlled.
</p><p>Embedded software needs to include all needed <a href="Device_driver" title="Device driver">device drivers</a> at manufacturing time, and the device drivers are written for the various hardware devices. These device drivers, called BSP (<a href="Board_support_package" title="Board support package">Board support package</a>), form the layer of software containing hardware-specific drivers and other routines that allow a particular operating system (traditionally a real-time operating system, or RTOS) to function in a particular hardware environment (a computer or CPU card), integrated with the RTOS itself. The software is highly dependent on the CPU and specific chips chosen. Most embedded software engineers have at least a passing knowledge of reading <a href="Schematic" title="Schematic">schematics</a>, and reading data sheets for components to determine usage of registers and communication system. Conversion between <a href="Decimal" title="Decimal">decimal</a>, <a href="Hexadecimal" title="Hexadecimal">hexadecimal</a> and <a href="Binary_numeral_system" class="mw-redirect" title="Binary numeral system">binary</a> is useful as well as using <a href="Bit_manipulation" title="Bit manipulation">bit manipulation</a>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>Web applications are often used for managing hardware, although XML files and other output may be passed to a computer for display. File systems with folders are typically used, however SQL databases are often absent.
</p><p>Software development requires use of a <a href="Cross_compiler" title="Cross compiler">cross compiler</a>, which runs on a computer but produces executable code for the target device. Debugging requires use of an <a href="In-circuit_emulator" class="mw-redirect" title="In-circuit emulator">in-circuit emulator</a>, and debugging hardware such as <a href="JTAG" title="JTAG">JTAG</a> or <a href="JTAG#Serial_Wire_Debug" title="JTAG">SWD</a> debuggers. Software developers often have access to the complete kernel (OS) source code.
</p><p>Size of the storage memory and RAM can vary significantly. Some systems run in 16&nbsp;KB of Flash and 4&nbsp;KB of RAM with a CPU operating at 8&nbsp;MHz, other systems can rival contemporary computers.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> These space requirements lead to more work being done in C or <a href="Embedded_C%2B%2B" title="Embedded C++">embedded C++</a>, instead of C++. Interpreted languages like <a href="BASIC" title="BASIC">BASIC</a> (while e.g. <a href="Parallax_Propeller#BASIC_compiler" title="Parallax Propeller">Parallax Propeller</a> can use compiled BASIC) and <a href="Java_programming_language" class="mw-redirect" title="Java programming language">Java</a> (Java ME Embedded 8.3<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> is available for e.g. <a href="ARM_Cortex-M4" class="mw-redirect" title="ARM Cortex-M4">ARM Cortex-M4</a>, <a href="Cortex-M7" class="mw-redirect" title="Cortex-M7">Cortex-M7</a> microcontrollers and older <a href="ARM11" title="ARM11">ARM11</a> used in <a href="Raspberry_Pi" title="Raspberry Pi">Raspberry Pi</a> and <a href="Intel_Galileo" title="Intel Galileo">Intel Galileo</a> Gen. 2) are not commonly used; while an implementation of the interpreted <a href="Python_(programming_language)" title="Python (programming language)">Python</a> 3 language&nbsp;– <a href="MicroPython" title="MicroPython">MicroPython</a>&nbsp;– is however available expressly for microcontroller use, e.g. <a href="32-bit" class="mw-redirect" title="32-bit">32-bit</a> <a href="List_of_ARM_Cortex-M_development_tools" title="List of ARM Cortex-M development tools">ARM</a>-based (such as BBC <a href="Micro_Bit" title="Micro Bit">micro:bit</a>) and <a href="16-bit" class="mw-redirect" title="16-bit">16-bit</a> <a href="PIC_microcontroller" class="mw-redirect" title="PIC microcontroller">PIC microcontrollers</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Communication_protocols">Communication protocols</h2></div>
<p>Communications between processors and between one processor and other components are essential. Besides <a href="Memory_address" title="Memory address">direct memory addressing</a>, hardware level common protocols include <a href="I%C2%B2C" title="I²C">I²C</a>, <a href="Serial_Peripheral_Interface_Bus" class="mw-redirect" title="Serial Peripheral Interface Bus">SPI</a>, <a href="Serial_port" title="Serial port">serial ports</a>, <a href="1-Wire" title="1-Wire">1-Wires</a>, <a href="Ethernet" title="Ethernet">Ethernets</a>, and <a href="Universal_Serial_Bus" class="mw-redirect" title="Universal Serial Bus">USB</a>.
</p><p>Communications protocols designed for use in <a href="Embedded_systems" class="mw-redirect" title="Embedded systems">embedded systems</a> are available as <a href="Closed_source" class="mw-redirect" title="Closed source">closed source</a> from companies including InterNiche Technologies and <a href="CMX_Systems" title="CMX Systems">CMX Systems</a>. <a href="Open-source_model" class="mw-redirect" title="Open-source model">Open-source</a> protocols stem from <a href="UIP_(micro_IP)" class="mw-redirect" title="UIP (micro IP)">uIP</a>, <a href="LwIP" title="LwIP">lwip</a>, and others.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Embedded_system" title="Embedded system">Embedded system</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-MicroVGA-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-MicroVGA_8-0">^</a></b></span> <span class="reference-text">For more details of MicroVGA see this <a rel="nofollow" class="external text" href="http://www.microvga.com/pdf/uvga-text-ds.pdf">PDF</a>.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<ul><li>Edward A. Lee, "Embedded Software", <i>Advances in Computers</i> (<a href="Marvin_Victor_Zelkowitz" class="mw-redirect" title="Marvin Victor Zelkowitz">Marvin Victor Zelkowitz</a>, editor) <b>56</b>, Academic Press, London, 2002.</li></ul>
<div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.stroustrup.com/abstraction-and-machine.pdf">"Stroustrup on C++ for embedded (bottom p.2)"</a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">. Retrieved <span class="nowrap">9 December</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFEmilio2014" class="citation book cs1">Emilio, Maurizio Di Paolo (2014-09-01). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=NixnBAAAQBAJ&amp;q=This+term+is+sometimes+used+interchangeably+with+firmware.&amp;pg=PA60"><i>Embedded Systems Design for High-Speed Data Acquisition and Control</i></a>. Springer. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-319-06865-7</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130322031258/http://ics-control.com/">"I.C.S. on embedded software"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.ics-control.com">the original</a> on 22 March 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">22 July</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131029203328/http://www.computer.org/portal/web/certification/Embedded-Systems">"Embedded Systems Methods and Technologies"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.computer.org/portal/web/certification/Embedded-Systems">the original</a> on 29 October 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">9 December</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlippi2014" class="citation cs2">Alippi, Cesare (2014), <i>Intelligence for Embedded Systems</i>, Springer, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-319-05278-6</bdi></cite>.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external free" href="http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf">http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf</a> </span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFMazzeiMonteliscianiBaldiFantoni2015" class="citation conference cs1">Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). <i>Changing the programming paradigm for the embedded in the IoT domain</i>. Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. pp.&nbsp;<span class="nowrap">239–</span>244. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FWF-IoT.2015.7389059">10.1109/WF-IoT.2015.7389059</a>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130203113844/http://www.stroustrup.com/Programming/25_embedded.ppt">"Stroustrup on embedded software"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.www.stroustrup.com/Programming/25_embedded.ppt">the original</a> on 3 February 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">9 December</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.st.com/internet/mcu/product/216844.jsp">"Example of embedded CPU"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">9 December</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.oracle.com/technetwork/java/embedded/javame/embed-me/downloads/java-embedded-java-me-download-2162242.html">"Java ME Embedded"</a>. <i>Oracle Technology Network</i>.</cite></span>
</li>
</ol></div></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Embedded_systems344" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Embedded_systems344" style="font-size:114%;margin:0 4em"><a href="Embedded_system" title="Embedded system">Embedded systems</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General terms</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">ASIC</a></li>
<li><a href="Board_support_package" title="Board support package">Board support package</a></li>
<li><a href="Bootloader" title="Bootloader">Bootloader</a></li>
<li><a href="Consumer_electronics" title="Consumer electronics">Consumer electronics</a></li>
<li><a href="Cross_compiler" title="Cross compiler">Cross compiler</a></li>
<li><a href="Embedded_database" title="Embedded database">Embedded database</a></li>
<li><a href="Embedded_hypervisor" title="Embedded hypervisor">Embedded hypervisor</a></li>
<li><a href="Embedded_operating_system" title="Embedded operating system">Embedded OS</a></li>

<li><a href="Field-programmable_gate_array" title="Field-programmable gate array">FPGA</a></li>
<li><a href="Internet_of_things" title="Internet of things">IoT</a></li>
<li><a href="Memory_footprint" title="Memory footprint">Memory footprint</a></li>
<li><a href="Microcontroller" title="Microcontroller">Microcontroller</a></li>
<li><a href="Single-board_computer" title="Single-board computer">Single-board computer</a>
<ul><li><a href="Raspberry_Pi" title="Raspberry Pi">Raspberry Pi</a></li></ul></li>
<li><a href="System_on_a_chip" title="System on a chip">SoC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Firmware" title="Firmware">Firmware</a> and controls</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Firmware" title="Firmware">Firmware</a>
<ul><li><a href="Custom_firmware" title="Custom firmware">Custom firmware</a></li>
<li><a href="Proprietary_firmware" title="Proprietary firmware">Proprietary firmware</a></li></ul></li>
<li><a href="Closed_platform" title="Closed platform">Closed platform</a></li>
<li><a href="Crippleware" title="Crippleware">Crippleware</a></li>
<li><a href="Defective_by_Design" title="Defective by Design">Defective by Design</a></li>
<li><a href="Hacking_of_consumer_electronics" title="Hacking of consumer electronics">Hacking of consumer electronics</a></li>
<li><a href="Homebrew_(video_games)" title="Homebrew (video games)">Homebrew (video games)</a></li>
<li><a href="IOS_jailbreaking" title="IOS jailbreaking">iOS jailbreaking</a></li>
<li><a href="PlayStation_3_Jailbreak" title="PlayStation 3 Jailbreak">PlayStation 3 Jailbreak</a></li>
<li><a href="Rooting_(Android)" title="Rooting (Android)">Rooting (Android)</a></li>
<li><a href="UEFI" title="UEFI">UEFI</a></li>
<li><a href="Vendor_lock-in" title="Vendor lock-in">Vendor lock-in</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Booting" title="Booting">Boot loaders</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Das_U-Boot" title="Das U-Boot">U-Boot</a></li>
<li><a href="Barebox" title="Barebox">Barebox</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Library_(computing)" title="Library (computing)">Software libraries</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="UClibc" title="UClibc">uClibc</a></li>
<li><a href="Dietlibc" title="Dietlibc">dietlibc</a></li>
<li><a href="Embedded_GLIBC" class="mw-redirect" title="Embedded GLIBC">Embedded GLIBC</a></li>
<li><a href="LwIP" title="LwIP">lwIP</a></li>
<li><a href="Musl" title="Musl">musl</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_tool" title="Programming tool">Programming tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Almquist_shell" title="Almquist shell">Almquist shell</a></li>
<li><a href="BitBake" title="BitBake">BitBake</a></li>
<li><a href="Buildroot" title="Buildroot">Buildroot</a></li>
<li><a href="BusyBox" title="BusyBox">BusyBox</a></li>
<li><a href="OpenEmbedded" title="OpenEmbedded">OpenEmbedded</a></li>
<li><a href="Stand-alone_shell" title="Stand-alone shell">Stand-alone shell</a></li>
<li><a href="Toybox" title="Toybox">Toybox</a></li>
<li><a href="Yocto_Project" title="Yocto Project">Yocto Project</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Embedded_operating_system" title="Embedded operating system">Operating systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Linux_on_embedded_systems" title="Linux on embedded systems">Linux on embedded systems</a></li>
<li><a href="Linux_for_mobile_devices" title="Linux for mobile devices">Linux for mobile devices</a></li>
<li><a href="Light-weight_Linux_distribution" class="mw-redirect" title="Light-weight Linux distribution">Light-weight Linux distribution</a></li>
<li><a href="Real-time_operating_system" title="Real-time operating system">Real-time operating system</a></li>
<li><a href="Windows_IoT" title="Windows IoT">Windows IoT</a>
<ul><li><a href="Windows_Embedded_Compact" class="mw-redirect" title="Windows Embedded Compact">Win CE</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language" title="Programming language">Programming languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly language</a></li>
<li>CAPL</li>
<li><a href="Embedded_C" title="Embedded C">Embedded C</a></li>
<li><a href="Embedded_C%2B%2B" title="Embedded C++">Embedded C++</a></li>
<li><a href="Embedded_Java" title="Embedded Java">Embedded Java</a></li>
<li><a href="MISRA_C" title="MISRA C">MISRA C</a></li>
<li><a href="MicroPython" title="MicroPython">MicroPython</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Comparison_of_lightweight_web_browsers" title="Comparison of lightweight web browsers">Lightweight browsers</a></li>
<li><a href="List_of_open-source_hardware" class="mw-redirect" title="List of open-source hardware">List of open-source hardware</a></li>
<li><a href="Open-source_robotics" title="Open-source robotics">Open-source robotics</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-23" href="https://en.wikipedia.org/wiki/?title=Embedded_software&amp;oldid=1297021716">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>